package com.sy.mapper;

import com.sy.entity.Dept;
import com.sy.vo.DeptAddVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DeptMapper {

    Dept getDeptByDeptno(Integer deptno);

    List<Dept> getAllDepts();

    int getDeptCount();

    List<Dept> getDetpsByDnameLike(String dname);

    /**
     * DML操作对应的返回值可以定义成整数类型表示受影响的行数
     * 也可以定义成布尔类型表示操作是否成功
     */
    int addDept(DeptAddVo deptAddVo);

    /**
     * 对于Mapper接口中如果存在多个参数的情况下，可以使用@Param注解来标记每个形参，
     * 注解中的值对应XML文件中占位符参数的名字
     */
    boolean updateDept(@Param("deptno") Integer deptno, @Param("dname") String dname, @Param("loc") String loc);

    boolean delDeptByDeptno(Integer deptno);

    List<Dept> getDeptsByDnameAndLoc1(@Param("dname") String dname, @Param("loc") String loc);

    List<Dept> getDeptsByDnameAndLoc2(@Param("dname") String dname, @Param("loc") String loc);

    int updateDept2(@Param("deptno") Integer deptno, @Param("dname") String dname, @Param("loc") String loc);

    List<Dept> getDeptsByDeptnos(@Param("deptnos") List<Integer> deptnos);

    int insertDept(Dept dept);

    Dept getDeptByDeptno1(Integer deptno);

    Dept getDeptByDeptno2(Integer deptno);
}
